package com.anlogic.sdk.bsp.settings;

import java.util.List;

public interface IProperty {
	public static final int TYPE_BOOLEAN = 1;
	public static final String TYPE_BOOLEAN_NAME = "boolean";

	public static final int TYPE_INTEGER = 2;
	public static final String TYPE_INTEGER_NAME = "integer";

	public static final int TYPE_STRING = 3;
	public static final String TYPE_STRING_NAME = "string";
	
	public static final int TYPE_ARRAY = 4;
	public static final String TYPE_ARRAY_NAME = "array";
	
	public static final int STATE_ACTIVE = 0;

	public static final int STATE_DEPRECATED = 1;

	public static final int STATE_OBSOLETE = 2;

	void setName(String paramString);

	String getName();

	int getType();

	void setType(int paramInt);
	
	void setTypeFromString(String type);
	
	String getTypeAsString();

	String getDefaultValue();

	void setDefaultValue(String paramString);

	String getValue();

	int getIndexOfValue();

	void setValue(String paramString);

	void setValueOptions(String[] paramArrayOfString);

	String[] getValueOptions();

	String getDesc();

	void setDesc(String paramString);

	boolean getIsEditable();

	void setIsEditable(boolean paramBoolean);

	int getState();

	void setState(int paramInt);

	boolean getPermit();

	void setPermit(boolean paramBoolean);
	
	String[] getSupportedProc();
	
	void setSupportedProc(String[] param);
	
	String[] getSupportedOS();
	
	void setSupportedOS(String[] param);

	boolean isCategory();

	void setCategory(boolean paramBoolean);

	void addChild(IProperty paramIProperty);

	void removeChild(IProperty paramIProperty);

	List<IProperty> getChildren();

	void setParent(IProperty paramIProperty);

	IProperty getParent();
}
